Systems and methods for generating dynamic conversational responses using cluster-level collaborative filtering matrices

ABSTRACT

Methods and systems disclosed herein collect user data in real-time and organize them (e.g., using a collaborative filtering matrix) into groups (e.g., cluster assignments). The system then determines statistical distributions of observed real-time intents (e.g., based on actual selections made by users) for each group. The system then merges this distribution with existing model predictions (e.g., a model trained on historical training data) to balance between historical and dynamically updated information.

BACKGROUND

In recent years, the amount and uses of interactive programs has risenconsiderably. In tandem with this rise, is the need to have human-likeinteractions and/or create applications that mimic the tone, cadence,and speech patterns of humans. Additionally, in order to fulfilluser-interaction requirements, these applications need to be helpful,and thus respond intelligently by providing relevant responses to userinputs, whether these inputs are received via text, audio, or videoinput.

SUMMARY

Methods and systems are described herein for generating dynamicconversational responses. Conversational responses includecommunications between a user and a system that may maintain aconversational tone, cadence, or speech pattern of a human during aninteractive exchange between the user and the system. The interactiveexchange may include the system responding to one or more user actions(which may include user inactions) and/or predicting responses prior toreceiving a user action. In order to maintain the conversationalinteraction during the exchange, the system may advantageously generateresponses that are both timely and pertinent (e.g., in a dynamicfashion). This requires the system to determine both quickly (i.e., inreal-time or near real-time) and accurately the intent, goal, ormotivation behind a user input. These user input or actions may takevarious forms including speech commands, textual inputs, responses tosystem queries, and/or other user actions (e.g., logging into a mobileapplication of the system). In each case, the system may aggregateinformation about the user action, information about the user, and/orother circumstances related to the user action (e.g., time of day,previous user actions, current account settings, etc.) in order todetermine a likely intent of the user.

In order to determine the likely intent and generate a dynamicconversational response that is both timely and pertinent, the methodsand systems herein use one or more machine learning models and/or otherartificial intelligence based models (referred to herein collectively).However, the use of these models presents fundamental problems. First,in order to have information processed by a model, the system needs tocreate a feature input that may be processed by the model. For example,aggregated information about the user action, information about theuser, and/or other circumstances related to the user action (e.g., timeof day, previous user actions, current account settings, etc.) may beused to generate a feature input (e.g., a vector of data) that expressesthe information quantitatively or qualitatively. However, feature inputsfor similar intents (e.g., a first intent of a user to learn about afirst set of information and a second intent of a user to learn about asecond set of information) may have similar feature inputs as much ofthe underlying aggregated information may be the same. This isparticularly prevalent in generating dynamic conversational responses asthe system must respond with specificity, as responding too generally ismore unnatural and frustrating for a user.

Second, machine learning models require training in order to “learn” howto respond based on a feature input. For example, training data for amachine learning model may include known intents and labeled featureinputs corresponding to a respective known intent. In order to preventproblems arising due to a sparsity in the training data (and thusleading to a less precise model), training data is retrieved over a longperiod of time. However, the use of data spanning a long period of timeis only useful if the training data continues to accurately reflect theintents of the user. That is, this creates an additional problem in thatdespite the large amounts of data, if new information is statisticallydifferent from the learning batch, the predictions trained by the modelbecome impaired. For example, if recent trends or changes to the usercause historic training data to become obsolete or inaccurate, then themodel becomes inaccurate as well. A conventional approach to handlingthis problem may be to exclude historic data past a certain age from thetraining data set. This in turn risks limiting the available trainingdata (e.g., leading to less precision and increased data sparsity), butalso removes training data that may be useful when a trend is overand/or a user returns to historic norms.

To overcome these technical challenges, the methods and systemsdisclosed herein collects user data in real-time and organizes them(e.g., using collaborative filtering matrices) into groups (e.g.,clusters). The system then determines statistical distributions ofobserved real-time intents (e.g., based on actual selections made byusers) for each group. The system then merges this distribution withexisting model predictions (e.g., a model trained on historical trainingdata) to balance between historical and dynamically updated information.To overcome the technical challenge of feature inputs having similardata for multiple intents, the system uses a collaborative filteringmatrix of intent probabilities for cluster assignments. That is, thesystem provides a distribution of intent probabilities across intentsand categorized by cluster assignments. To overcome the technicalchallenge of current data exhibiting transient behaviors different fromhistoric data, which leads to a drop in prediction accuracy, the systembalances predictions based on both the collaborative filtering matrix(e.g., corresponding to current data) and a distribution of probableintents (e.g., corresponding to historic data). The system thengenerates a weighted average of the collaborative filtering matrix andthe distribution based on whether a probable intent of the user is morelikely to match a current or historic trend.

In some aspects, methods and systems are disclosed for generatingdynamic conversational responses using cluster-level collaborativefiltering matrices. For example, the system may receive user data inresponse to a user interacting with a user interface, wherein the userdata is multi-modal data. The system may determine a user clusterassignment for the user based on the user data. The system may determinea collaborative filtering matrix of intent probabilities for clusterassignments, wherein the collaborative filtering matrix is based onactual intents of a subset of users. The system may determine, for theuser, a distribution of probable intents from a plurality ofdistributions of probable intents based on the user data, wherein theplurality of distributions of probable intents are based on actualintents of users having one of a plurality of cluster assignments over atime period. The system may determine a first probable intent of theuser based on a weighted average of the collaborative filtering matrixand the distribution. The system may generate for display, on the userinterface, a first dynamic conversational response based on the firstprobable intent of the user.

Various other aspects, features, and advantages of the invention will beapparent through the detailed description of the invention and thedrawings attached hereto. It is also to be understood that both theforegoing general description and the following detailed description areexamples, and not restrictive of the scope of the invention. As used inthe specification and in the claims, the singular forms of “a,” “an,”and “the” include plural referents unless the context clearly dictatesotherwise. In addition, as used in the specification and the claims, theterm “or” means “and/or” unless the context clearly dictates otherwise.Additionally, as used in the specification “a portion,” refers to a partof, or the entirety of (i.e., the entire portion), a given item (e.g.,data) unless the context clearly dictates otherwise.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows an illustrative user interface for presenting dynamicconversational responses using machine learning models, in accordancewith one or more embodiments.

FIG. 2 shows illustrative diagrams for how historical and dynamicallyupdated information is used for generating dynamic conversationalresponses, in accordance with one or more embodiments.

FIG. 3 shows illustrative system components for generating dynamicconversational responses based on historical and dynamically updatedinformation, in accordance with one or more embodiments.

FIG. 4 shows an illustrative diagram for a collaborative filteringmatrix of intent probabilities for cluster assignment, in accordancewith one or more embodiments.

FIG. 5 shows a flowchart of the steps involved in generating dynamicconversational responses using cluster-level collaborative filteringmatrices, in accordance with one or more embodiments.

DETAILED DESCRIPTION OF THE DRAWINGS

In the following description, for the purposes of explanation, numerousspecific details are set forth in order to provide a thoroughunderstanding of the embodiments of the invention. It will beappreciated, however, by those having skill in the art, that theembodiments of the invention may be practiced without these specificdetails, or with an equivalent arrangement. In other cases, well-knownstructures and devices are shown in block diagram form in order to avoidunnecessarily obscuring the embodiments of the invention.

FIG. 1 shows an illustrative user interface for presenting dynamicconversational responses using machine learning models, in accordancewith one or more embodiments. As discussed above, the system solves thetechnical problem of identifying sudden shifts in user intents (e.g.,indicating a change in normal trends) in machine learning models thatare trained on historic data, which may not be sensitive to the suddenshifts. The solution to this technical problem may be embodied indetermining a first probable intent of the user based on a weightedaverage of a collaborative filtering matrix (e.g., trained on dynamicdata) and a distribution of probable intents (e.g., trained on historicdata). Solving this technical problem provides the practical benefit ofallowing the machine learning model to detect new trends and revertingback to historic norms without compromising the model.

For example, FIG. 1 shows user interface 100. The system (e.g., a mobileapplication) may generate and respond to user interactions in a userinterface (e.g., user interface 100) in order to engage in aconversational interaction with the user. The conversational interactionmay include a back-and-forth exchange of ideas and information betweenthe system and the user. The conversational interaction may proceedthrough one or more mediums (e.g., text, video, audio, etc.). Forexample, the system may use one or more artificial intelligence models(including machine learning models, neural networks, etc.) referred tohere collectively as “models.”

In order to maintain the conversational interaction, the system may needto generate responses (e.g., conversational response) dynamically and/orin substantially real-time. For example, the system may generateresponses within the normal cadence of a conversation. In someembodiments, the system may continually determine a likely intent of theuser in order to generate responses (e.g., in the form of prompts,notifications, and/or other communications) to the user. It should benoted that a response may include any step or action (or inaction) takenby the system, including computer processes, which may or may not beperceivable to a user.

For example, in response to a user action, which in some embodiments maycomprise a user logging onto an application that generates userinterface 100, inputting a query (e.g., query 106) into user interface100, and/or a prior action (or lack thereof) by a user to a priorresponse generated by the system, the system may take one or more stepsto generate dynamic conversational responses (e.g., response 104). Thesesteps may include retrieving data about the user, retrieving data fromother sources, monitoring user actions, and/or other steps in order togenerate a feature input (e.g., as discussed below). In someembodiments, the system may generate a plurality of responses (e.g.,responses 102).

In some embodiments, the feature input may include a vector thatdescribes various information about a user, a user action, and/or acurrent or previous interaction with the user. The system may furtherselect the information for inclusion in the feature input based on apredictive value. The information may be collected actively or passivelyby the system and compiled into a user profile.

In some embodiments, the information (e.g., a user action) may includeconversation details, such as information about a current session,including a channel or platform, e.g. desktop web, iOS, or mobile, alaunch page (e.g., the webpage that the application was launched from),a time of launch, and/or activities in a current or previous sessionbefore launching the application. The system may store this informationand all the data about a conversational interaction may be available inreal-time via HTTP messages and/or through data streaming or from moresources (e.g., via an API).

In some embodiments, the information (e.g., a user action) may includeuser account information such as types of accounts the user has, otheraccounts on file, such as bank accounts for payment, informationassociated with accounts, such as credit limit, current balance, duedate, recent payments, or recent transactions. The system may obtainthis data in real-time for model prediction through enterprise APIs.

In some embodiments, the information (e.g., a user action) may includeinsights about users provided to the application (e.g., via an API) fromone or more sources, such as a qualitative or quantitativerepresentations (e.g., a percent) of a given activity (e.g., onlinespending) in a given time period (e.g., six months), upcoming actions(e.g., travel departure, pay day, leave and/or family event) for a user,information about third parties (e.g., merchants (ranked by the numberof transactions) over the last year for the user), etc.

FIG. 2 shows illustrative diagrams for how historical and dynamicallyupdated information is used for generating dynamic conversationalresponses, in accordance with one or more embodiments. Diagram 200illustrates various user intents by a weekly popularity over a giventime period. For example, as shown in diagram 200, user intents forduring the first week of April (e.g., “04-01”) dramatically increasedfor intents related to fraud. For example, this week may havecorresponded to a news report related to a cybersecurity breach thatresulted in widespread fraud. Notably, the presence of the spike in userintents may be missed by conventional machine learning models, as thosemodels may be trained on data sets that did not feature dramatic spikesin user intents related to fraud. As such, the machine learning modelsare not trained to detect real-time updates and/or a surge in userintents based on real-time changes.

Furthermore, if the training data featuring the surge is simplyincorporated into the training data set for the machine learning model,the future predictions of the machine learning model will be biased. Forexample, the model will be trained to expect dramatic spikes in userintents related to fraud to occur in the future based on this presenceof the one-time spike. Thus, conventional models (e.g., those trainedusing conventional training mechanisms and/or with conventionalarchitectures) fail to both identify dramatic changes at the time of thedramatic change and will be biased in future predictions.

To overcome this problem, the methods and systems disclosed hereincollect user data in real-time and organize them (e.g., usingcollaborative filtering) into groups (e.g., clusters). For example, thesystem may identify characteristics of particular users (e.g.,demographics, geographic area, previous interactions, etc.) anddetermine the actual intent of a user over a recent time period. Forexample, the system may determine the actual intent of users. The systemmay do this based on a user selection of a response of a plurality ofresponses (e.g., responses 102 (FIG. 1 )), in which each responsecorresponds to a given user intent. The system may then comparecharacteristics of users to determine a category of users that arelikely to have a given intent.

In some embodiments, the system may use collaborative filtering. Forexample, the system may filter information or patterns using techniquesinvolving collaboration among multiple agents, viewpoints, data sources,etc. That is, the system may make automatic predictions (e.g.,filtering) about the interests of a user by collecting preferences ortaste information from many users (e.g., collaborating). In someembodiments, the system may use a memory-based approach forcollaborative filtering, in which the system uses user rating data tocompute the similarity between users and/or characteristics of users.For example, the system may use a neighborhood-based collaborativefiltering approach and/or intent-based/user-based top-N recommendationsapproach. Notably, this approach has a high level of interpretability(e.g., the ability to determine the value of different characteristicsin the filtering) of the results. Additionally, this approach is botheasy to create and to use, but also makes it easy to facilitate newdata. This ease of use may aid in incorporating the new data inreal-time as described herein. It should also be noted that the memorydata structure used for implementing the collaborative filtering may beupdated as additional inputs (e.g., user selection indicating actualuser intents) are received.

For example, in user-based approaches, the system generates aprobability rating, r, of an intent, i, of a user, u, based on anaggregation of other users' intent:r _(u,i)=aggr_(u′∈U) r _(u′,i)In such cases, where U denotes the set of top N users that are mostsimilar to user, u, who had an intent, i. Some examples of theaggregation function include:

$r_{u,i} = {\frac{1}{N}{\sum\limits_{u^{\prime} \in U}r_{u^{\prime},i}}}$

$r_{u,i} = {k{\sum\limits_{u^{\prime} \in U}{( {u,u^{\prime}} )r_{u^{\prime},i}}}}$where k is a normalizing factor defined as:

${k = {1/{\sum\limits_{u^{\prime} \in U}{❘( {u,u^{\prime}} )❘}}}}{r_{u,i} = {\underline{r_{u}} + {k{\sum\limits_{u^{\prime} \in U}{( {u,u^{\prime}} )( {r_{u^{\prime},i} - \underline{r_{u^{\prime}}}} )}}}}}$where r_(u′) is the average rating of user u for all the items rated byu. The neighborhood-based algorithm calculates the similarity betweentwo users, and the system may then produce a prediction for the user bytaking the weighted average of all the ratings. The system may thencompare similarity between users through the use of Pearson correlationand vector cosine.

Additionally or alternatively, the system may use a model based approachthat uses one or more collaborative filtering models (e.g., includingBayesian networks, clustering models, latent semantic models such assingular value decomposition, probabilistic latent semantic analysis,multiple multiplicative factor, latent Dirichlet allocation, and/orMarkov decision process based models). The system may also use latentmodels (e.g., dimensionally reduced versions of the model) in order toreduce the processing time and power required to cluster users. Forexample, reducing the processing time and power required allows for thesystem to be used for generating real-time results and/or allowing thesystem to be run on a mobile device.

The systems described may also use a hybrid collaborative filteringapproach (e.g., a combination of the memory-based approach and amodel-based approach). For example, the system may use a hybrid ofintents-based and user-based similarities to cluster customers.Moreover, the system may use the memory-based algorithms, but asexecuted through one or more of the models described. The system may usecollaborative filtering based on intents-based and user-basedsimilarities by combining collaborative filtering based on intentssimilarities and collaborative filtering based on user similaritiestogether. As such, the system may use collaborative filtering based onintents and users to analyze an intent-user matrix (e.g., acollaborative filtering matrix) to identify a correlation between anintent and user characteristic, generate similar intents for a givenuser (or user characteristic), and determine a number of available usersfor target intents.

The system may then use the hybrid collaborative filtering approach toorganize users into clusters. The system may then derive a statisticaldistribution of observed real-time intents for each group. The systemmay then merge this distribution with existing predictions (e.g., basedon a machine learning model trained on historical data) to balancebetween historical and dynamically updated information.

For example, “final prediction” data may act as a balance between amodel based on historical predictions (“model predictions” or a“distribution of probable intents”) and dynamically updated information(e.g., “collaborative filtering matrix predictions”). For example, togenerate the “final prediction” data, the system divides customers intoclusters using hybrid collaborative filtering. The system thendetermines each cluster's distribution of intents choices (e.g., asshown in FIG. 2 ) as recorded by group-wise dynamic intent predictions(“cluster_D2_intents_dist”). For each new user, the system determinesintents probabilities using hybrid collaborative filtering based on thegroup-wise dynamic intent predictions (“HCF_D2 prediction”). The systemthen update an existing model (e.g., the historical model) usingweighted average approach based on a weight, W:new_RE_predict=original_RE_prediction×W+HCF_D2_prediction×(1−W)

The weight, W, may be algorithmically determined based on one or morefactors. For example, the system may determine a number of users in theplurality of clusters and determine a weight to apply in the weightedaverage based on the number of users in the plurality of clusters.Alternatively or additionally, the system may determine a rate of changein the number (e.g., indicating a dramatic and sudden spike) anddetermine a weight to apply in the weighted average based on the rate ofchange in order to highlight real-time events. Alternatively oradditionally, the system may determine a frequency of the intents and/ora historic popularity of the intent and determine a weight to apply inthe weighted average based on the frequency of the intents and/or ahistoric popularity. The system may then generate a dynamicconversational response based on the predictions of the weighted averagemodel.

In some embodiments, the system may then use in-memory caching to enablecontrol on how many conversation points are stored for use in hybridcollaborative filtering. For example, the system may use Redis cachingor Python native dictionary caching. The system may then utilize thestored hybrid collaborative filtering to filter data structure to applythe weighted average approach as described above on top of the modelpredictions for any new conversation or invocation of the model used toprovide predictions.

FIG. 3 shows illustrative system components for generating dynamicconversational responses based on historical and dynamically updatedinformation, in accordance with one or more embodiments. For example,system 300 may represent the components used for generating dynamicconversational responses, as shown in FIG. 1 . As shown in FIG. 3 ,system 300 may include mobile device 322 and user terminal 324. Whileshown as a smartphone and personal computer, respectively, in FIG. 3 ,it should be noted that mobile device 322 and user terminal 324 may beany computing device, including, but not limited to, a laptop computer,a tablet computer, a hand-held computer, other computer equipment (e.g.,a server), including “smart,” wireless, wearable, and/or mobile devices.FIG. 3 also includes cloud components 310. Cloud components 310 mayalternatively be any computing device as described above, and mayinclude any type of mobile terminal, fixed terminal, or other device.For example, cloud components 310 may be implemented as a cloudcomputing system, and may feature one or more component devices. Itshould also be noted that system 300 is not limited to three devices.Users may, for instance, utilize one or more devices to interact withone another, one or more servers, or other components of system 300. Itshould be noted, that, while one or more operations are described hereinas being performed by particular components of system 300, thoseoperations may, in some embodiments, be performed by other components ofsystem 300. As an example, while one or more operations are describedherein as being performed by components of mobile device 322, thoseoperations may, in some embodiments, be performed by components of cloudcomponents 310. In some embodiments, the various computers and systemsdescribed herein may include one or more computing devices that areprogrammed to perform the described functions. Additionally, oralternatively, multiple users may interact with system 300 and/or one ormore components of system 300. For example, in one embodiment, a firstuser and a second user may interact with system 300 using two differentcomponents.

With respect to the components of mobile device 322, user terminal 324,and cloud components 310, each of these devices may receive content anddata via input/output (hereinafter “I/O”) paths. Each of these devicesmay also include processors and/or control circuitry to send and receivecommands, requests, and other suitable data using the I/O paths. Thecontrol circuitry may comprise any suitable processing, storage, and/orinput/output circuitry. Each of these devices may also include a userinput interface and/or user output interface (e.g., a display) for usein receiving and displaying data. For example, as shown in FIG. 3 , bothmobile device 322 and user terminal 324 include a display upon which todisplay data (e.g., conversational response, queries, and/ornotifications).

Additionally, as mobile device 322 and user terminal 324 are shown astouchscreen smartphones, these displays also act as user inputinterfaces. It should be noted that in some embodiments, the devices mayhave neither user input interface nor displays, and may instead receiveand display content using another device (e.g., a dedicated displaydevice such as a computer screen, and/or a dedicated input device suchas a remote control, mouse, voice input, etc.). Additionally, thedevices in system 300 may run an application (or another suitableprogram). The application may cause the processors and/or controlcircuitry to perform operations related to generating dynamicconversational replies, queries, and/or notifications.

Each of these devices may also include electronic storages. Theelectronic storages may include non-transitory storage media thatelectronically stores information. The electronic storage media of theelectronic storages may include one or both of (i) system storage thatis provided integrally (e.g., substantially non-removable) with serversor client devices, or (ii) removable storage that is removablyconnectable to the servers or client devices via, for example, a port(e.g., a USB port, a firewire port, etc.) or a drive (e.g., a diskdrive, etc.). The electronic storages may include one or more ofoptically readable storage media (e.g., optical disks, etc.),magnetically readable storage media (e.g., magnetic tape, magnetic harddrive, floppy drive, etc.), electrical charge-based storage media (e.g.,EEPROM, RAM, etc.), solid-state storage media (e.g., flash drive, etc.),and/or other electronically readable storage media. The electronicstorages may include one or more virtual storage resources (e.g., cloudstorage, a virtual private network, and/or other virtual storageresources). The electronic storages may store software algorithms,information determined by the processors, information obtained fromservers, information obtained from client devices, or other informationthat enables the functionality as described herein.

FIG. 3 also includes communication paths 328, 330, and 332.Communication paths 328, 330, and 332 may include the Internet, a mobilephone network, a mobile voice or data network (e.g., a 5G or LTEnetwork), a cable network, a public switched telephone network, or othertypes of communications networks or combinations of communicationsnetworks. Communication paths 328, 330, and 332 may separately ortogether include one or more communications paths, such as a satellitepath, a fiber-optic path, a cable path, a path that supports Internetcommunications (e.g., IPTV), free-space connections (e.g., for broadcastor other wireless signals), or any other suitable wired or wirelesscommunications path or combination of such paths. The computing devicesmay include additional communication paths linking a plurality ofhardware, software, and/or firmware components operating together. Forexample, the computing devices may be implemented by a cloud ofcomputing platforms operating together as the computing devices.

Cloud components 310 may be a database configured to store user data fora user. For example, the database may include user data that the systemhas collected about the user through prior interactions, both activelyand passively. For example, the user data may describe one or morecharacteristics of a user, a user device, and/or one or moreinteractions of the user with a user device and/or applicationgenerating responses, queries, and/or notifications. Alternatively, oradditionally, the system may act as a clearing house for multiplesources of information about the user. This information may be compiledinto a user profile. Cloud components 310 may also include controlcircuitry configured to perform the various operations needed togenerate alternative content. For example, the cloud components 310 mayinclude cloud-based storage circuitry configured to generate alternativecontent. Cloud components 310 may also include cloud-based controlcircuitry configured to run processes to determine alternative content.Cloud components 310 may also include cloud-based input/output circuitryconfigured to display alternative content.

Cloud components 310 may include model 302, which may be a machinelearning model (e.g., as described in FIG. 3 ). Model 302 may takeinputs 304 and provide outputs 306. The inputs may include multipledatasets, such as a training dataset and a test dataset. Each of theplurality of datasets (e.g., inputs 304) may include data subsetsrelated to user data, predicted intents, and/or actual intents. In someembodiments, outputs 306 may be fed back to model 302 as input to trainmodel 302 (e.g., alone or in conjunction with user indications of theaccuracy of outputs 306, labels associated with the inputs, or withother reference feedback information). For example, the system mayreceive a first labeled feature input, wherein the first labeled featureinput is labeled with a known prediction for the first labeled featureinput. The system may then train the first machine learning model toclassify the first labeled feature input with the known prediction.

In a variety of embodiments, model 302 may update its configurations(e.g., weights, biases, or other parameters) based on the assessment ofits prediction (e.g., outputs 306) and reference feedback information(e.g., user indication of accuracy, reference labels, or otherinformation). In a variety of embodiments, where model 302 is a neuralnetwork, connection weights may be adjusted to reconcile differencesbetween the neural network's prediction and reference feedback. In afurther use case, one or more neurons (or nodes) of the neural networkmay require that their respective errors are sent backward through theneural network to facilitate the update process (e.g., backpropagationof error). Updates to the connection weights may, for example, bereflective of the magnitude of error propagated backward after a forwardpass has been completed. In this way, for example, the model 302 may betrained to generate better predictions.

In some embodiments, model 302 may include an artificial neural network.In such embodiments, model 302 may include an input layer and one ormore hidden layers. Each neural unit of model 302 may be connected withmany other neural units of model 302. Such connections can be enforcingor inhibitory in their effect on the activation state of connectedneural units. In some embodiments, each individual neural unit may havea summation function that combines the values of all of its inputs. Insome embodiments, each connection (or the neural unit itself) may have athreshold function such that the signal must surpass it before itpropagates to other neural units. Model 302 may be self-learning andtrained, rather than explicitly programmed, and can performsignificantly better in certain areas of problem solving, as compared totraditional computer programs. During training, an output layer of model302 may correspond to a classification of model 302, and an input knownto correspond to that classification may be input into an input layer ofmodel 302 during training. During testing, an input without a knownclassification may be input into the input layer, and a determinedclassification may be output.

In some embodiments, model 302 may include multiple layers (e.g., wherea signal path traverses from front layers to back layers). In someembodiments, back propagation techniques may be utilized by model 302where forward stimulation is used to reset weights on the “front” neuralunits. In some embodiments, stimulation and inhibition for model 302 maybe more free-flowing, with connections interacting in a more chaotic andcomplex fashion. During testing, an output layer of model 302 mayindicate whether or not a given input corresponds to a classification ofmodel 302 (e.g., a user intent).

In some embodiments, model 302 may predict alternative content. Forexample, the system may determine that particular characteristics aremore likely to be indicative of a prediction. In some embodiments, themodel (e.g., model 302) may automatically perform actions based onoutputs 306. In some embodiments, the model (e.g., model 302) may notperform any actions on a user's account. The output of the model (e.g.,model 302) is only used to decide which location and/or delivery timeoffset to select.

System 300 also includes API layer 350. In some embodiments, API layer350 may be implemented on mobile device 322 or user terminal 324.Alternatively or additionally, API layer 350 may reside on one or moreof cloud components 310. API layer 350 (which may be A REST or Webservices API layer) may provide a decoupled interface to data and/orfunctionality of one or more applications. API layer 350 may provide acommon, language-agnostic way of interacting with an application. Webservices APIs offer a well-defined contract, called WSDL, that describesthe services in terms of its operations and the data types used toexchange information. REST APIs do not typically have this contract;instead, they are documented with client libraries for most commonlanguages, including Ruby, Java, PHP, and JavaScript. SOAP Web serviceshave traditionally been adopted in the enterprise for publishinginternal services, as well as for exchanging information with partnersin B2B transactions.

API layer 350 may use various architectural arrangements. For example,system 300 may be partially based on API layer 350, such that there isstrong adoption of SOAP and RESTful Web-services, using resources likeService Repository and Developer Portal, but with low governance,standardization, and separation of concerns. Alternatively, system 300may be fully based on API layer 350, such that separation of concernsbetween layers like API layer 350, services, and applications are inplace.

In some embodiments, the system architecture may use a microserviceapproach. Such systems may use two types of layers: Front-End Layer andBack-End Layer where microservices reside. In this kind of architecture,the role of the API layer 350 may provide integration between Front-Endand Back-End. In such cases, API layer 350 may use RESTful APIs(exposition to front-end or even communication between microservices).API layer 350 may use AMQP (e.g., Kafka, RabbitMQ, etc.). API layer 350may use incipient usage of new communications protocols such as gRPC,Thrift, etc.

In some embodiments, the system architecture may use an open APIapproach. In such cases, API layer 350 may use commercial or open sourceAPI Platforms and their modules. API layer 350 may use Developer Portal.API layer 350 may use strong security constraints applying WAF and DDoSprotection, and API layer 350 may use RESTful APIs as standard forexternal integration.

FIG. 4 shows an illustrative diagram for a collaborative filteringmatrix of intent probabilities for cluster assignment, in accordancewith one or more embodiments. For example, the system may use a dynamicmoving window of recent user interactions to build a cluster-levelcollaborative filtering matrix. The window size may be empiricallydetermined with infrastructure consideration (allowable memory size).For example, for a 10K-size window, records observed intents of the mostrecent 10K users. New user 10K+1th will replace the first user of themoving window.

As shown in FIG. 4 , diagram 400 may represent a collaborative filteringmatrix. In diagram 400, the X-axis represents the K clusters and Y-axisthe intents-probabilities calculated from observed data andcluster-assignment probabilities. For example, in the collaborativefiltering matrix, columns may represent collaborative filteringintent-prediction mapping for the cluster assignments. The system maycontinually update the collaborative filtering matrix as additional userintents are received (and a previous user intent is replaced with thenewly received intent).

For example, for each user, the system updates the collaborativefiltering matrix using the observed intent and clustering assignment.For example, the system may receive the cluster assignment probabilitiesvector and add a collaborative filtering column with this vector byadding this vector to the existing contents. The system may thennormalize the updated columns to have a new summed-to-1 values.

FIG. 5 shows a flowchart of the steps involved in generating dynamicconversational responses using cluster-level collaborative filteringmatrices, in accordance with one or more embodiments. For example, thesystem may use process 500 (e.g., as implemented on one or more systemcomponents described in FIG. 3 ) in order to generate dynamicconversational responses.

At step 502, process 500 (e.g., using one or more components describedin system 300 (FIG. 3 )) receives user data. For example, the system mayreceive multi-modal user data in response to a user interacting with auser interface. For example, the multi-modal user data comprisesinformation about the user, cohort (or cluster) assignment, channelinformation, and/or a selected intent of the user. For example, thesystem may receive user data in response to a user interacting with auser interface (e.g., user interface 100 (FIG. 1 )). The user data maydescribe one or more characteristics of a user, a user device, and/orone or more interactions of the user with a user device and/orapplication generating responses.

In some embodiments, the system may generate a feature input. Forexample, the system may generate a first feature input based on the userdata. The feature input may comprise a column of data (e.g., an inputset) that represents characteristics of user data from which the systemmay use to select a cluster assignment for the user. Alternatively oradditionally, the system may include a feature input layer that receivesthe feature input and applies data normalization. For example, thesystem may extract a vector of continuous numbers from the user data,wherein determining the user cluster assignment for the user based onthe user data comprises determining the user cluster assignment based onthe vector of continuous numbers.

At step 504, process 500 (e.g., using one or more components describedin system 300 (FIG. 3 )) determines a user cluster assignment. Forexample, the system may determine a user cluster assignment for the userbased on the user data. The system may generate a feature input. Forexample, the system may generate a first feature input based on the userdata. The feature input may comprise a column of data (e.g., an inputset) that represents characteristics of user data from which the systemmay use to select a cluster assignment for the user. Alternatively oradditionally, the system may include a feature input layer that receivesthe feature input and applies data normalization.

In some embodiments, the system may determine a cluster assignment forthe user based on a latent representation or embedding of training data.Additionally or alternatively, the system may use hard or softclustering. In hard clustering, each user is assigned one clusterassignment. In soft clustering, each user receives a probability intentfor all cluster assignments. That is, in hard clustering, each datapoint either belongs to a cluster assignment completely or not. In softclustering, instead of putting each data point into a separate clusterassignment, a probability or likelihood of that data point to be inthose cluster assignments is assigned. In hard clustering, one of the Kvalues is 1 and the rest are 0. In soft clustering, all values can benon zeros and summed to 1. The system may use a soft clustering approachas it may be more consistent with a model when combined in the finalfully connected layers.

For example, the system may determine an embedding for the user based onthe user data, wherein the embedding comprises a vector of embedded realvalues. The system may then determine, using an unsupervised clusteringalgorithm, to assign the user to a first user cluster based on theembedding. In another example, the system may determine, using anunsupervised clustering algorithm, a distribution of clusterprobabilities for the user based on the embedding.

The system may determine a user cluster assignment for the user based onthe first feature input, wherein the first user cluster assignmentcomprises users having a first actual intent. The system may cluster theusers based on similarities of intent and/or user characteristics. Forexample, the system may retrieve these characteristics (e.g.,characteristics of the cluster and the user) and compare them.

For the comparison, the system may use multiple types of opticalcharacter recognition and/or fuzzy logic. For example, when comparingmultiple data fields (e.g., as contained in databases described below).For example, after the content-recognition module or algorithmtranslates text, video, and/or audio recordings into text, the systemmay cross-reference the translated text with a database to determinewhether or not the translated text corresponds to text in a databasethat corresponds to characteristics of users in a cluster.

For example, the system may arrange the text into data fields andcross-reference the data fields with other data fields (e.g., in alookup table database) corresponding to possible values associated withuser and/or cluster characteristics. Using fuzzy logic, the system maydetermine two fields and/or values to be identical even though thesubstance of the data field or value (e.g., two different spellings) isnot identical. In some embodiments, the system may analyze particulardata fields of a data structure for particular values or text. The datafields could be associated with characteristics, other user data, and/orany other information required for the function of the embodimentsdescribed herein. Furthermore, the data fields could contain values(e.g., the data fields could be expressed in binary or any othersuitable code or programming language).

In some embodiments, the system may put additional requirements oncluster assignments. For example, the system may determine a number ofthe plurality of cluster assignments. The system may then assign eachuser a vector of values, a number of the values in the vector equals thenumber of the plurality of cluster assignments, and wherein the valuessum to one, and wherein each value of the values corresponds to aprobability that the user correspond to a respective cluster assignment.

At step 506, process 500 (e.g., using one or more components describedin system 300 (FIG. 3 )) determines a collaborative filtering matrix.For example, the system may determine a collaborative filtering matrixof intent probabilities for cluster assignments, wherein thecollaborative filtering matrix is based on actual intents of a subset ofusers. In some embodiments, the subset of users may be based on athreshold number of user interactions that resulted in determinations ofactual intents of users that were most recently received. For example,the collaborative filtering matrix may represent a dynamic, movingwindow of recently confirmed actual intents.

For example, the system may determine a collaborative filtering matrixof intent probabilities for cluster assignments, wherein thecollaborative filtering matrix of intent probabilities for clusterassignments is for a subset of users corresponding to the first usercluster, and wherein the collaborative filtering matrix of intentprobabilities for cluster assignments is based on actual intents of thesubset of users during a first time period. For example, the system maydetermine a distribution of the probabilities of intents. Thedistribution may correspond to a multivariate analysis of a probabilityof a plurality of intents.

Additionally or alternatively, when determining the collaborativefiltering matrix of intent probabilities for cluster assignments, thesystem may determine a respective number of users in each of theplurality of clusters, compare each respective number to a thresholdnumber, and determine the collaborative filtering matrix of intentprobabilities for cluster assignments in response to determining thateach respective number equals or exceeds the threshold number. Forexample, the system may set a threshold based on the popularity of theparticular intent.

Additionally or alternatively, when determining the collaborativefiltering matrix of intent probabilities for cluster assignments, thesystem may determine a number of users in the first user cluster over aperiod of time, determine a rate of change of the number of users in thefirst user cluster over the period of time, compare the rate of changeto a threshold rate of change, and determine the collaborative filteringmatrix of intent probabilities for cluster assignments in response todetermining that the rate of change equals or exceeds the threshold rateof change. For example, the system may set a threshold based on if anintent has had a dramatic rise in popularity.

At step 508, process 500 (e.g., using one or more components describedin system 300 (FIG. 3 )) determines a distribution of probable intents.For example, the system may determine, for the user, a distribution ofprobable intents from a plurality of distributions of probable intentsbased on the user data, wherein the plurality of distributions ofprobable intents are based on actual intents of users having one of aplurality of cluster assignments over a time period. This distributionmay represent a historic distribution based on historic intents forusers and/or cluster assignments.

Additionally or alternatively, the determination may include comparingthe distribution to a threshold distribution. For example, whendetermining the distribution, the system may determine a number of usersin the distribution. The system may then compare the number to athreshold number. The system may then determine the distribution inresponse to determining that the number equals or exceeds the thresholdnumber. For example, the system may set a threshold based on a totalnumber of users for which an intent has been determined to prevent acold-start problem (e.g., the model does not yet have enough informationto make an accurate prediction).

At step 510, process 500 (e.g., using one or more components describedin system 300 (FIG. 3 )) determines a first probable intent. Forexample, the system may determine a first probable intent of the userbased on a weighted average of the collaborative filtering matrix andthe distribution. For example, the system may adjust the weight given topredictions from the collaborative filtering matrix or the distributionbased on how accurate recent predictions have been.

For example, the system may determine a first previous probable intentof the user based on the collaborative filtering matrix. The system maydetermine a second previous probable intent of the user based on thedistribution. The system may determine an actual previous intent of theuser based on a user selection of a previous dynamic conversationalresponse. The system may determine that the actual previous intentcorresponds to the first previous probable intent (e.g., determine thatthe actual previous intent corresponds to an intent with highest softmaxprobability prediction in the distribution). In response to determiningthat the actual previous intent corresponds to the first previousprobable intent, the system may determine an increase to a weightattributed to the collaborative filtering matrix. The system maydetermine the weighted average of the collaborative filtering matrix andthe distribution based on the increase to the weight attributed to thecollaborative filtering matrix.

Additionally or alternatively, the system may determine a first previousprobable intent of the user based on the collaborative filtering matrix.The system may determine a second previous probable intent of the userbased on the distribution. The system may determine an actual previousintent of the user based on a user selection of a previous dynamicconversational response. The system may determine that the actualprevious intent corresponds to the second previous probable intent(e.g., determine that the actual previous intent corresponds to ahighest intent probability of the intent probabilities in thecollaborative filtering matrix in a column associated with a clusterassignment, of the cluster assignments, with a highest probability). Inresponse to determining that the actual previous intent corresponds tothe second previous probable intent, the system may determine anincrease to a weight attributed to the distribution. The system maydetermine the weighted average of the collaborative filtering matrix andthe distribution based on the increase to the weight attributed to thedistribution.

For example, the system may maintain a vector of per-intent weightnumbers (e.g., one for historic learning (e.g., the distribution) anddynamic learning (e.g., the collaborative filtering matrix)). Forexample, if there are 100 intents, then the vector has 100 non negativepairs, from 0 to 1, numbers. Initially the all values are 0.5 to reflectsteady state matching between historic learning (e.g., the distribution)and dynamic learning (e.g., the collaborative filtering matrix). Foreach user, the system compares the observed intent (e.g., a previouslydetermined actual intent) expressed by a user with a prediction (e.g.intent with highest softmax probability prediction) for the historiclearning (e.g., the distribution). If there is a match then, the systemincreases the weight for that intent. For collaborative filteringmatrix, the system derives intent prediction by probability (e.g.,intent with highest probability in the column associated with thehighest assignment) and performs a similar update for same-intentweight. Each update is by 1/N, where N is the size of the recentexperience moving window. The system may then normalize the weight-pairto have their sum equal to 1. The system may then use this pair as thenew weights to calculate weighted average of probability prediction.

At step 512, process 500 (e.g., using one or more components describedin system 300 (FIG. 3 )) generates a first dynamic conversationalresponse. For example, the system may generate for display, on the userinterface, a first dynamic conversational response based on the firstprobable intent of the user. For example, the system may generate fordisplay, on the user interface, a first dynamic conversational responsebased on the first probable intent of the user. Additionally oralternatively, the system may use the result of a user selection toupdate a model (e.g., a collaborative filtering matrix). For example,the system may receive a user selection of the first dynamicconversational response. The system may then determine an actual intentof the user based on the user selection. The system may then update thethird model based on the actual intent.

It is contemplated that the steps or descriptions of FIG. 5 may be usedwith any other embodiment of this disclosure. In addition, the steps anddescriptions described in relation to FIG. 5 may be done in alternativeorders or in parallel to further the purposes of this disclosure. Forexample, each of these steps may be performed in any order, in parallel,or simultaneously to reduce lag or increase the speed of the system ormethod. Furthermore, it should be noted that any of the devices orequipment discussed in relation to FIGS. 1-4 could be used to performone or more of the steps in FIG. 5 .

The above-described embodiments of the present disclosure are presentedfor purposes of illustration and not of limitation, and the presentdisclosure is limited only by the claims which follow. Furthermore, itshould be noted that the features and limitations described in any oneembodiment may be applied to any embodiment herein, and flowcharts orexamples relating to one embodiment may be combined with any otherembodiment in a suitable manner, done in different orders, or done inparallel. In addition, the systems and methods described herein may beperformed in real time. It should also be noted that the systems and/ormethods described above may be applied to, or used in accordance with,other systems and/or methods.

The present techniques will be better understood with reference to thefollowing enumerated embodiments:

-   -   1. A method for generating dynamic conversational responses        based on historical and dynamically updated information, the        method comprising: receiving multi-modal user data in response        to a user interacting with a user interface; generating a first        feature input based on the user data; determining a first user        cluster for the user based on the first feature input, wherein        the first user cluster comprises users having a first actual        intent; determining a collaborative filtering matrix of intent        probabilities for cluster assignments, wherein the collaborative        filtering matrix of intent probabilities for cluster assignments        is for a subset of users corresponding to the first user        cluster, and wherein the collaborative filtering matrix of        intent probabilities for cluster assignments is based on actual        intents of the subset of users during a first time period;        generating a second feature input based on the user data;        determining a second distribution of probable intents based on        the second feature input, wherein the second distribution of        probable intents is for the user, wherein the second        distribution of probable intents is based on actual intents of        users in a plurality of clusters during a second time period;        determining a first probable intent of the user based on a        weighted average of the first distribution and the second        distribution; and generating for display, on the user interface,        a first dynamic conversational response based on the first        probable intent of the user.    -   2. The method of any one of the preceding embodiments, wherein        determining the first user cluster for the user based on the        first feature input comprises: inputting the first feature input        into a first model, wherein the first model performs hybrid        collaborative filtering based on similarities in predicted        intents and user characteristics between users; receiving a        first output from the first model; and determining the first        user cluster based on the first output.    -   3. The method of any one of the preceding embodiments, wherein        determining the collaborative filtering matrix of intent        probabilities for cluster assignments comprises: inputting group        data for users in the first user cluster into a second model,        wherein the second model is an unsupervised model; receiving a        second output from the second model; and determining the first        distribution based on the second output.    -   4. The method of any one of the preceding embodiments, wherein        determining the collaborative filtering matrix of intent        probabilities for cluster assignments comprises: determining a        number of users in the plurality of clusters; comparing the        number to a threshold number; and determining the collaborative        filtering matrix of intent probabilities for cluster assignments        in response to determining that the number equals or exceeds the        threshold number.    -   5. The method of any one of the preceding embodiments, wherein        determining the collaborative filtering matrix of intent        probabilities for cluster assignments comprises: determining a        respective number of users in each of the plurality of clusters;        comparing each respective number to a threshold number; and        determining the collaborative filtering matrix of intent        probabilities for cluster assignments in response to determining        that each respective number equals or exceeds the threshold        number.    -   6. The method of any one of the preceding embodiments, wherein        determining the collaborative filtering matrix of intent        probabilities for cluster assignments comprises: determining a        number of users in the first user cluster over a period of time;        determining a rate of change of the number of users in the first        user cluster over the period of time; comparing the rate of        change to a threshold rate of change; and determining the        collaborative filtering matrix of intent probabilities for        cluster assignments in response to determining that the rate of        change equals or exceeds the threshold rate of change.    -   7. The method of any one of the preceding embodiments, wherein        determining the second distribution of probable intents based on        the second feature input comprises: inputting the second feature        input into a third model, wherein the third model comprises        supervised model components; receiving a third output from the        third model; and determining the second distribution based on        the third output.    -   8. The method of any one of the preceding embodiments, further        comprising: receiving a user selection of the first dynamic        conversational response; determining an actual intent of the        user based on the user selection; and updating a third model        based on the actual intent.    -   9. The method of any one of the preceding embodiments, wherein        determining the first probable intent of the user based on the        weighted average of the first distribution and the second        distribution comprises: determining a number of users in the        plurality of clusters; and determining a weight to apply in the        weighted average based on the number of users in the plurality        of clusters.    -   10. The method of any one of the preceding embodiments, wherein        the multi-modal user data comprises information about the user,        cohort assignment, channel information, or a selected intent of        the user.    -   11. A tangible, non-transitory, machine-readable medium storing        instructions that, when executed by a data processing apparatus,        cause the data processing apparatus to perform operations        comprising those of any of embodiments 1-10.    -   12. A system comprising: one or more processors; and memory        storing instructions that, when executed by the processors,        cause the processors to effectuate operations comprising those        of any of embodiments 1-10.    -   13. A system comprising means for performing any of embodiments        1-10.

What is claimed is:
 1. A system for generating dynamic conversationalresponses based on historical and dynamically updated information, thesystem comprising: cloud-based storage circuitry configured to store:group-wise dynamic intent predictions in a collaborative filteringmatrix of intent probabilities for cluster assignments, wherein thecollaborative filtering matrix is based on collaborative filtering ofactual intents of a subset of users, wherein the subset of users isbased on a threshold number of user interactions that resulted indeterminations of actual intents of users that were most recentlyreceived, and wherein the collaborative filtering matrix is based oncollaborative filtering of actual intents of a subset of users over afirst time period, and wherein the collaborative filtering matrixdenotes a set of the subset of users that are determined to be similarto a user and that had a first actual intent of the actual intentsduring the first time period; and a historical distribution of probableintents from a plurality of distributions of probable intents based onuser data, wherein the plurality of distributions of probable intentsare based on actual intents of users having one of a plurality ofcluster assignments over a second time period, wherein the second timeperiod is before the first time period; cloud-based control circuitryconfigured to: receive user data in response to the user interactingwith a user interface, wherein the user data is multi-modal data;extracting a vector of continuous numbers from the user data; determinea user cluster assignment for the user based on the vector; retrieve thecollaborative filtering matrix of intent probabilities for clusterassignments; retrieve, for the user, the historical distribution;determine a first previous probable intent of the user by processing theuser cluster assignment in the collaborative filtering matrix as a firstfeature input; determine a second previous probable intent of the userby processing the user cluster assignment in the historical distributionas a second feature input; determine an actual previous intent of theuser based on a user selection of a previous dynamic conversationalresponse; compare the actual previous intent with the first previousprobable intent; in response to comparing the actual previous intentwith the first previous probable intent, determine an adjustment to afirst weight attributed to the collaborative filtering matrix; comparethe actual previous intent with the second previous probable intent; inresponse to comparing the actual previous intent with the secondprevious probable intent, determine an adjustment to a second weightattributed to the historical distribution; determine a weighted averageof the collaborative filtering matrix and the historical distributionbased on the adjustment to the first weight attributed to thecollaborative filtering matrix and based on the adjustment to the secondweight attributed to the historical distribution; and determine a firstprobable intent of the user based on the weighted average; andcloud-based input/output circuitry configured to: generate for display,on the user interface, a dynamic conversational response based on thefirst probable intent of the user, wherein the dynamic conversationalresponse comprises a text-string in a human-readable format.
 2. A methodfor generating dynamic conversational responses using cluster-levelcollaborative filtering matrices, the method comprising: receiving userdata in response to a user interacting with a user interface during afirst time period, wherein the user data is multi-modal data;determining a user cluster assignment for the user based on the userdata; determining a group-wise dynamic intent predictions in acollaborative filtering matrix of intent probabilities for clusterassignments, wherein the collaborative filtering matrix is based oncollaborative filtering of actual intents of a subset of users over thefirst time period, and wherein the collaborative filtering matrixdenotes a set of the subset of users that are determined to be similarto the user and that had a first actual intent of the actual intentsduring the first time period; determining, for the user, a historicaldistribution of probable intents from a plurality of distributions ofprobable intents based on the user data, wherein the plurality ofdistributions of probable intents are based on actual intents of usershaving one of a plurality of cluster assignments over a second timeperiod, wherein the second time period is before the first time period;determining a first previous probable intent of the user by processingthe user cluster assignment in the collaborative filtering matrix as afirst feature input; determining a second previous probable intent ofthe user by processing the user cluster assignment in the historicaldistribution as a second feature input; determining an actual previousintent of the user based on a user selection of a previous dynamicconversational response; comparing the actual previous intent with thefirst previous probable intent; in response to comparing the actualprevious intent with the first previous probable intent, determining anadjustment to a first weight attributed to the collaborative filteringmatrix; comparing the actual previous intent with the second previousprobable intent; in response to comparing the actual previous intentwith the second previous probable intent, determining an adjustment to asecond weight attributed to the historical distribution; determining aweighted average of the collaborative filtering matrix and thehistorical distribution based on the adjustment to the first weightattributed to the collaborative filtering matrix and based on theadjustment to the second weight attributed to the historicaldistribution; determining a first probable intent of the user based onthe weighted average; and generating for display, on the user interface,a first dynamic conversational response based on the first probableintent of the user.
 3. The method of claim 2, wherein determining theuser cluster assignment for the user based on the user data, furthercomprises: determining an embedding for the user based on the user data,wherein the embedding comprises a vector of embedded real values; anddetermining, using an unsupervised clustering algorithm, to assign theuser to a first user cluster based on the embedding.
 4. The method ofclaim 2, wherein determining the user cluster assignment for the userbased on the user data, further comprises: determining an embedding forthe user based on the user data, wherein the embedding comprises avector of embedded real values; and determining, using an unsupervisedclustering algorithm, a distribution of cluster probabilities for theuser based on the embedding.
 5. The method of claim 2, whereindetermining the user cluster assignment for the user based on the userdata further comprises: determining a number of the plurality of clusterassignments; and assigning each user a vector of values, a number of thevalues in the vector equals the number of the plurality of clusterassignments, and wherein the values sum to one, and wherein each valueof the values corresponds to a probability that the user correspond to arespective cluster assignment.
 6. The method of claim 2, wherein thesubset of users is based on a threshold number of user interactions thatresulted in determinations of actual intents of users that were mostrecently received.
 7. The method of claim 2, wherein determining thatthe actual previous intent corresponds to the first previous probableintent comprises determining that the actual previous intent correspondsto an intent with highest softmax probability prediction in thehistorical distribution.
 8. The method of claim 2, wherein determiningthat the actual previous intent corresponds to the second previousprobable intent comprises determining that the actual previous intentcorresponds to a highest intent probability of the intent probabilitiesin the collaborative filtering matrix in a column associated with acluster assignment, of the cluster assignments, with a highestprobability.
 9. The method of claim 2, further comprising extracting avector of continuous numbers from the user data, wherein determining theuser cluster assignment for the user based on the user data comprisesdetermining the user cluster assignment based on the vector ofcontinuous numbers.
 10. A non-transitory, computer readable medium forgenerating dynamic conversational responses using cluster-levelcollaborative filtering matrices, comprising instructions that whenexecuted by one or more processors, causes operations comprising:receiving user data in response to a user interacting with a userinterface during a first time period, wherein the user data ismulti-modal data; determining a user cluster assignment for the userbased on the user data; determining group-wise dynamic intentpredictions in a collaborative filtering matrix of intent probabilitiesfor cluster assignments, wherein the collaborative filtering matrix isbased on collaborative filtering of actual intents of a subset of usersover the first time period, and wherein the collaborative filteringmatrix denotes a set of the subset of users that are determined to besimilar to the user and that had a first actual intent of the actualintents during the first time period; determining, for the user, ahistorical distribution of probable intents from a plurality ofdistributions of probable intents based on the user data, wherein theplurality of distributions of probable intents are based on actualintents of users having one of a plurality of cluster assignments over asecond time period, wherein the second time period is before the firsttime period; determining a first previous probable intent of the user byprocessing the user cluster assignment in the collaborative filteringmatrix as a first feature input; determining a second previous probableintent of the user by processing the user cluster assignment in thehistorical distribution as a second feature input; determining an actualprevious intent of the user based on a user selection of a previousdynamic conversational response; comparing the actual previous intentwith the first previous probable intent; in response to comparing theactual previous intent with the first previous probable intent,determining an adjustment to a first weight attributed to thecollaborative filtering matrix; determining that the actual previousintent has a degree of correspondence with the second previous probableintent; in response to comparing the actual previous intent with thesecond previous probable intent, determining an adjustment to a secondweight attributed to the historical distribution; determining a weightedaverage of the collaborative filtering matrix and the historicaldistribution based on the adjustment to the first weight attributed tothe collaborative filtering matrix and based on the adjustment to thesecond weight attributed to the historical distribution; determining afirst probable intent of the user based on the weighted average; andgenerating for display, on the user interface, a first dynamicconversational response based on the first probable intent of the user.11. The non-transitory, computer readable medium of claim 10, whereindetermining the user cluster assignment for the user based on the userdata, further comprises: determining an embedding for the user based onthe user data, wherein the embedding comprises a vector of embedded realvalues; and determining, using an unsupervised clustering algorithm, toassign the user to a first user cluster based on the embedding.
 12. Thenon-transitory, computer readable medium of claim 10, whereindetermining the user cluster assignment for the user based on the userdata, further comprises: determining an embedding for the user based onthe user data, wherein the embedding comprises a vector of embedded realvalues; and determining, using an unsupervised clustering algorithm, adistribution of cluster probabilities for the user based on theembedding.
 13. The non-transitory, computer readable medium of claim 10,wherein determining the user cluster assignment for the user based onthe user data further comprises: determining a number of the pluralityof cluster assignments; and assigning each user a vector of values, anumber of the values in the vector equals the number of the plurality ofcluster assignments, and wherein the values sum to one, and wherein eachvalue of the values corresponds to a probability that the usercorrespond to a respective cluster assignment.
 14. The non-transitory,computer readable medium of claim 10, wherein the subset of users isbased on a threshold number of user interactions that resulted indeterminations of actual intents of users that were most recentlyreceived.
 15. The non-transitory, computer readable medium of claim 10,wherein determining that the actual previous intent corresponds to thefirst previous probable intent comprises determining that the actualprevious intent corresponds to an intent with highest softmaxprobability prediction in the historical distribution.
 16. Thenon-transitory, computer readable medium of claim 10, whereindetermining that the actual previous intent corresponds to the secondprevious probable intent comprises determining that the actual previousintent corresponds to a highest intent probability of the intentprobabilities in the collaborative filtering matrix in a columnassociated with a cluster assignment, of the cluster assignments, with ahighest probability.